package com.yjd.comm.recharge.service;

import java.util.List;
import java.util.Map;

import com.yjd.comm.base.model.PagerModel;
import com.yjd.comm.base.service.IBaseService;
import com.yjd.comm.enums.OrderStatus;
import com.yjd.comm.recharge.dto.OrderDto;
import com.yjd.comm.recharge.dto.OrderStatics;
import com.yjd.comm.recharge.model.OrderModel;
import com.yjd.comm.user.model.UserCountModel;

/**
 * <b>description</b>：登陆记录业务接口<br>
 * <b>time</b>：2014-11-08 12:42:30 <br>
 * <b>author</b>：  renbangjie_vip@163.com
 */
public interface IOrderService extends IBaseService {
	/**
	 * 插入
	 * 
	 * @param model
	 * @return
	 * @throws Exception
	 */
	public OrderModel insert(OrderModel model) throws Exception;

	/**
	 * 更新,大于等于1表示成功，其他失败
	 * 
	 * @param model
	 * @return
	 * @throws Exception
	 */
	public int update(OrderModel model) throws Exception;

	/**
	 * 根据id删除,大于等于1表示成功，其他失败
	 * 
	 * @param order_id
	 * @return
	 * @throws Exception
	 */
	public int delete(Long order_id) throws Exception;
	
	/**
	 * 分页查询明细列表
	* @param paramMap
	* @return PagerModel
	 * @throws Exception 
	 */
	public PagerModel getDetailsPagerModel(Map paramMap) throws Exception;
	
	/**
	 * 删除7天前的数据
	* @return boolean
	 * @throws Exception 
	 */
	public boolean delete() throws Exception;
	
	/**
	 * 获取银行的统计信息
	* @param paramMap
	* @return List<OrderStatics>
	 */
	public List<OrderStatics> getStaticsByBank(Map<String, Object> paramMap);
	
	/**
	 * 获取充值渠道的统计信息
	* @param paramMap
	* @return List<OrderStatics>
	 */
	public List<OrderStatics> getStaticsByChannel(Map<String, Object> paramMap);
	
	/**
	 * 查询订单详情
	* @param paramMap
	* @return OrderDto
	 */
	public OrderDto getOrderDetails(Long order_id);
	
	public UserCountModel getUserCount(Map<String, Object> paramMap, boolean b);
	
	/**
	 * 订单充值金额统计
	 */
	public Double getRechStaticAmount(Map<String, Object> paramMap, boolean b)throws Exception;
}
